import java.util.Scanner;
public class test {
    public static void main(String[] args)
    {
        getMax();
    }

//    public void findOut()
//    {
//        Scanner scan = new Scanner(System.in);
//        String str = scan.next();
//        System.out.println(str);
//        int a = 0,
//                b = 0,
//                c = 0;
//        for(int i=0; i<str.length(); i++)
//        {
//            if(str.charAt(i)>='A' && str.charAt(i)<='Z')
//                a++;
//            if(str.charAt(i)>='a' && str.charAt(i)<='z')
//                b++;
//            if(str.charAt(i)>='0' && str.charAt(i)<='9')
//                c++;
//        }
//        System.out.println(a + "\n" + b + "\n" + c);
//    }

    public static int getMax(){
        int MAX = 5;
        int[][] D = new int[][]{{7},{0,0},{0,0,0},{0,0,0,0},{1,2,3,4,5}};   //存储数字三角形
        int n = 5;              //n表示层数
        int i = 0; int j = 0;
        int maxSum = getMaxSum(D,n,i,j);
        System.out.println(maxSum);
        return maxSum;
    }
    public static int getMaxSum(int[][] D,int n,int i,int j){
        if(i == n-1){
            return D[i][j];
        }
        int x = getMaxSum(D,n,i+1,j);
        int y = getMaxSum(D,n,i+1,j+1);
        return Math.max(x,y)+D[i][j];
    }

}
